/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package jogo;
import java.io.IOException;
import java.util.Scanner;

/**
 *
 * @author Rafael
 */
public class DesafioCharco {
    
    private String caminho;
    private boolean validaDecisao = true;
    private String decisao = null;
    private String climaAgora;
    
    Personagem personagem = new Personagem();
    Scanner c = new Scanner(System.in);
    
    public String qualCaminho() throws IOException {
        
        System.out.println("Você avançou até uma estrada que divide o caminho entre Passagem Norte e a Passagem Sul.");
        System.out.println("Dica: A Passagem Norte é mais segura em tempo seco. A Passagem Sul é mais segura em tempos de chuva.");
        System.out.println("Precione ENTER para prosseguir.");
        System.in.read();
        System.out.println("Você deve escolher entre um desses caminhos.");
        System.out.println("Precione ENTER para prosseguir.");
        System.in.read();
        
        System.out.println("Porém, antes de seguir em frente, você deve observar o clima.");
        System.out.println("Precione ENTER para prosseguir.");
        System.in.read();
        
        this.climaAgora = personagem.preverTempo();
        System.out.println("Precione ENTER para prosseguir.");
        System.in.read();
        
        while(validaDecisao) {
            
            System.out.println("Qual caminho irá seguir?");
            System.out.println("(NORTE, SUL OU CANCELAR?)");
            decisao = c.nextLine();
            
            if(decisao.equalsIgnoreCase("Cancelar")) {
                
                System.exit(1);
                
            }
            
            if(!(decisao.equalsIgnoreCase("Norte") || decisao.equalsIgnoreCase("Sul"))) {
                
                System.out.println("Entrada inválida!");
            
            } else {
                
                validaDecisao = false;
                
            }
            
        }
        
        if(decisao.equalsIgnoreCase("Norte")) {
            
            passagemNorte();
            
        } else if(decisao.equalsIgnoreCase("Sul")) {
            
            passagemSul();
            
        }
        
        return this.climaAgora;
        
    }
    
    private void passagemNorte() throws IOException {
        
        System.out.println("Você escolheu ir pelo norte.");
        System.out.println("Precione ENTER para prosseguir.");
        System.in.read();
        
        validaDecisao = true;
        
        while(validaDecisao) {
            
            System.out.println("Você chegou a uma corredeira. Gostaria de tentar atravessá-la?");
            System.out.println("(SIM, NAO OU CANCELAR?)");
            decisao = c.nextLine();
            
            if(decisao.equalsIgnoreCase("Cancelar")) {
                
                System.exit(1);
                
            }
            
            if(!(decisao.equalsIgnoreCase("Sim") || decisao.equalsIgnoreCase("Nao"))) {
                
                System.out.println("Entrada inválida!");
            
            } else if(decisao.equalsIgnoreCase("Nao")) {
                
                System.out.println("Infelizmente você não tem escolha. Deve tentar atravessá-la!");
                
            } else {
                
                validaDecisao = false;
                
            }
            
        }
        
        if(decisao.equalsIgnoreCase("Sim")) {
            
            if(climaAgora.equalsIgnoreCase("seco")) {
                
                System.out.println("Como não choveu a corredeira está quase seca.");
                System.out.println("Precione ENTER para prosseguir.");
                System.in.read();
                System.out.println("Assim você conseguiu atravessá-lo a pé.");
                System.out.println("Precione ENTER para prosseguir.");
                System.in.read();
                System.out.println("PARABÉNS! Você concluiu a travessia.");
                
            } else if(climaAgora.equalsIgnoreCase("chuva")) {
                
                System.out.println("A chuva impossibilitou você de atravessar a corredeira a pé.");
                System.out.println("Então você tentou atravessá-la a nado.");
                System.out.println("Precione ENTER para prosseguir.");
                System.in.read();
                System.out.println("Porém acabou morrendo afogado.");
                System.out.println("Precione ENTER para prosseguir.");
                System.in.read();
                System.out.println("Você perdeu. FIM DE JOGO!");
                System.exit(2);
                
            }
            
        }
        
    }
    
    private void passagemSul() throws IOException {
        
        System.out.println("Você escolheu ir pelo sul.");
        System.out.println("Precione ENTER para prosseguir.");
        System.in.read();
        
        validaDecisao = true;
        boolean canoa = false;
        
        if(climaAgora.equalsIgnoreCase("seco")) {
            
            canoa = false;
            
        } else if(climaAgora.equalsIgnoreCase("chuva")) {
            
            canoa = true;
            
        }
        
        validaDecisao = true;
        
        while(validaDecisao) {
            
            System.out.println("Você encontrou uma canoa.");
            System.out.println("Gostaria de tentar usá-la?");
            System.out.println("(SIM, NÃO OU CANCELAR?)");
            decisao = c.nextLine();
            
            if(decisao.equalsIgnoreCase("Cancelar")) {
                
                System.exit(1);
                
            }
            
            if(!(decisao.equalsIgnoreCase("Sim") || decisao.equalsIgnoreCase("Nao"))) {
                
                System.out.println("Entrada inválida!");
            
            } else {
                
                validaDecisao = false;
                
            }
            
            
        }
        
        if(decisao.equalsIgnoreCase("Sim")) {
                
                if(canoa == true) {
                    
                    System.out.println("Devido a chuva o banhado tornou-se navegável possibilitando sua travessia.");
                    System.out.println("Precione ENTER para prosseguir.");
                    System.in.read();
                    System.out.println("PARABÉNS! Você concluiu a travessia.");
                    
                } else if(canoa == false) {
                    
                    System.out.println("O banhado está muito seco devido a falta de chuva.");
                    System.out.println("Precione ENTER para prosseguir.");
                    System.in.read();
                    System.out.println("Não será possível navegar.");
                    System.out.println("Precione ENTER para prosseguir.");
                    System.in.read();
                    System.out.println("Agora é impossível chegar ao seu destino a tempo.");
                    System.out.println("Você perdeu. FIM DE JOGO!");
                    System.exit(2);
                    
                }
                
        } else if(decisao.equalsIgnoreCase("Sim")) {
            
            System.out.println("Você escolheu dar uma de aventureiro e ir a pé.");
            System.out.println("Precione ENTER para prosseguir.");
            System.in.read();
            System.out.println("Porém o banhado é muito perigoso para aventureiros despreparados.");
            System.out.println("Infelizmente você acabou sendo picado por uma cobra venenosa e não resistiu.");
            System.out.println("Precione ENTER para prosseguir.");
            System.in.read();
            System.out.println("Você perdeu. FIM DE JOGO!");
            System.exit(2);
            
        }
        
    }
    
}
